home *** CD-ROM | disk | FTP | other *** search
Wrap
M3U playlist | 2006-06-21 | 3.6 KB | 93 lines
#!/bin/sh # # Network Stream Setting # # runlevels: geexbox, debug echo "### Network Stream Configuration ###" [ -f /etc/network -a -f /etc/netstream ] || exit 1 . /etc/network # Disable streams if not utilized. test "$SHOUTCAST" = "no" -a "$SHOUTCASTTV" = "no" -a `grep -c ^STREAM /etc/netstream` -eq 0 -a `grep -c ^EXTM3U /etc/netstream` -eq 0 && exit 1 DAY=`date '+%d'` MONTH=`date '+%m'` YEAR=`date '+%Y'` year=`date '+%y'` BASEDIR="/mnt/Network Streams" # network stream for I in `grep "^STREAM" /etc/netstream | sed "s# #%20#g"`; do DIR="$BASEDIR" [ ! -d "$DIR" ] && mkdir -p "$DIR" URL="$(echo $I |sed -e "s#^STREAM=\"\(.*\)\":.*#\1#" -e "s#%DD#$DAY#g" -e "s#%MM#$MONTH#g" -e "s#%YY#$YEAR#g" -e "s#%yy#$year#g")" FILE="$(echo $I |sed -e "s#^STREAM=\"\(.*\)\":\(.*\)#\2#" -e "s#%20# #g")" echo "$URL" > "$DIR/$FILE.pls" &> /dev/null done SC_TUNE=$(sed -n -e "s#^SHOUTCASTTUNE_URI=\"\(.*\)\"#\1#p" /etc/netstream) ( if [ "$SHOUTCAST" = "yes" ]; then # shoutcast radio wget -q --read-timeout=$TIMEOUT --tries=$TRIES -O /tmp/streamtmp `sed -n -e "s#^SHOUTCAST_URI=\"\(.*\)\"#\1#p" /etc/netstream` || echo "" > /tmp/streamtmp for I in `sed "s#\&#\g" /tmp/streamtmp |sed -n "s#.*name=\"\([^\"]*\)\".*id=\"\([0-9]*\)\".*#\1_TAG_\2#p"| sed -e "s#\ #_#g"`; do DIR="$BASEDIR/SHOUTcast Radio" [ ! -d "$DIR" ] && mkdir -p "$DIR" FILE="$(echo $I | sed -e "s#\(.*\)_TAG_[0-9]*#\1#" | sed -e "s#_# #g" -e "s#://##g" -e "s#/# #g")" URL="$SC_TUNE?id=$(echo $I | sed -e "s#.*_TAG_\([0-9]*\)#\1#")" echo "$URL" > "$DIR/$FILE.pls" &> /dev/null done fi if [ "$SHOUTCASTTV" = "yes" ]; then # SHOUTcast TV content filter if [ -n "$BLACKLIST" ]; then BL="-v" for I in $BLACKLIST; do BL="$BL -e genre=\"[^\"]*$I[^\"]*\"" done else # Accept all Genre BL="-e genre=\"[^\"]*\"" fi if [ -n "$WHITELIST" ]; then for I in $WHITELIST; do WL="$WL -e genre=\"[^\"]*$I[^\"]*\"" done else # Accept all Genre WL="-e genre=\"[^\"]*\"" fi # SHOUTcast TV wget -q --read-timeout=$TIMEOUT --tries=$TRIES -O /tmp/streamtmp `sed -n -e "s#^SHOUTCASTTV_URI=\"\(.*\)\"#\1#p" /etc/netstream` || echo "" > /tmp/streamtmp for I in `grep -i $BL /tmp/streamtmp | grep -i $WL | sed "s#\&#\g" | sed -n "s#.*name=\"\([^\"]*\)\".*id=\"\([0-9]*\)\".*#\1_TAG_\2#p"|sed "s#\ #_#g"`; do DIR="$BASEDIR/SHOUTcast TV" [ ! -d "$DIR" ] && mkdir -p "$DIR" FILE="$(echo $I | sed -e "s#\(.*\)_TAG_[0-9]*#\1#" | sed -e "s#_# #g" -e "s#://##g" -e "s#/# #g")" URL="$SC_TUNE?id=$(echo $I | sed -e "s#.*_TAG_\(.*\)#\1#")" echo "$URL" > "$DIR/$FILE.pls" &> /dev/null done fi # extended m3u playlists unset FILE URL for J in `grep "^EXTM3U" /etc/netstream | sed "s# #%20#g"`; do DIR="$BASEDIR/$(echo $J | sed -e "s#^EXTM3U=\".*\":\(.*\)#\1#" -e "s#%20# #g")" M3UURL="$(echo $J | sed "s#^EXTM3U=\"\(.*\)\":.*#\1#")" wget -q --read-timeout=$TIMEOUT --tries=$TRIES -O /tmp/streamtmp "$M3UURL" || continue for I in `sed -n -e "s/#EXTINF:[-]*[0-9]*,[0-9]*[ -]*\(.*\)/\1/p" -e "s#\(.*\)://\(.*\)#\1://\2#p" /tmp/streamtmp | sed "s# #_#g"`; do [ -n "$FILE" ] || FILE="$(echo $I | sed -e "s#_# #g" -e "s#/# #g")" [ -n "$URL" ] || URL="$(echo $I | sed -n -e "s#\(.*\)://\(.*\)#\1://\2#p" | sed -e "s#%DD#$DAY#g" -e "s#%MM#$MONTH#g" -e "s#%YY#$YEAR#g" -e "s#%yy#$year#g")" if [ -n "$FILE" -a -n "$URL" ]; then [ ! -d "$DIR" ] && mkdir -p "$DIR" echo "$URL" > "$DIR/$FILE.pls" &> /dev/null unset FILE URL fi done done )& exit 0